perm filename PUPSER.FLO[SS,SYS] blob
sn#817605 filedate 1986-05-24 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 PUP Interrupt processing
C00004 00003 RFC processing (interrupt level)
C00007 00004 ACK processing
C00010 ENDMK
C⊗;
PUP Interrupt processing
PUPINT:
ID≠RII
------------------------+
|
J=0 (??!?) |
----------------------+ |
| |
INTINS∧JBTIRQ=1 | |
-------------------+ | |
| | |
increment RII | | |
| | |
PUPIN1: <------------------+ | |
| |
INTINS∧JBTIEN=1 | |
------------------+ | |
| | |
cause interrupt | | |
| | |
PUPIN2: <-----------------+---+-|---+
| |
discard rcv'd packet | |
send int. reply | |
return | |
| |
| |
| |
PUPIN3: <-----------------------+ |
|
ID=RII-1 |
----------------------------+
ID=RII+1
--------------> PUPDSC
error
RFC processing (interrupt level)
RFCR=1
PUPRFC: -------------------+
|
RFCW=1 |
--------------+ |
| |
error | |
| |
PUPRF1: <-------------+ |
|
RFCS=0 ∨ ID=SID |
--------------+ |
| |
error | |
| |
PUPRF2: <-------------+ |
|
initialize ID's |
initialize sockets |
|
Host=-1 (listen) |
--------------+ |
| |
GENSYM socket | |
initialize SID| |
| |
PUPRF3: <-------------+ |
|
set host |
set RFCR |
|
RFCS=1 (is reply)|
-------------------|----+
| |
PUPRF4: -------------------|----|---+
| | |
send reply | | |
| | |
No routing | | |
---------> IROUFA | | |
| | |
Xmit full | | |
---------> PUPDSC | | |
| | |
return | | |
| | |
| | |
PUPRF5: <------------------+ | |
| |
RFCL=0 | |
---------> PUPDSC | |
| |
| | |
+---------------------|---+
|
|
PUPRF6: <-----------------------+
stop sending RFCs
doing RFC retry?
-------------------+
|
force other retry |
return |
|
PUPRF8: <------------------+
clear retry
return
ACK processing
PUPACK:
update timeouts
initialize to front of transmit queue
PUPAC2: <-------------------------------+
|
examine next packet |
|
no packets pending |
--------------------------------|-------+
| |
non-data packet | |
--------------------------------+ |
| |
PUPAC3: | |
packet more recent | |
--------------------------------|-------+
| |
remove packet from queue | |
| |
PUPAC4: | |
| |
not being transmitted | |
----------------------------+ | |
| | |
flag packet for discard | | |
| | |
| | | |
+-------------------------|---+ |
| | |
PUPAC5: <---------------------------+ | |
| |
discard data packet | |
| |
| | |
+-----------------------------+ |
|
|
PUPAC6: <---------------------------------------+
save new allocations
discard ACK packet
initialize to front of transmit queue
transmit queue empty
----------------------------------------+
|
PUPAC7: <-----------------------------------+ |
| |
reduce allocation by pending packet | |
examine next packet | |
| |
more to process | |
------------------------------------+ |
|
|
PUPAC8: <---------------------------------------+
insufficient allocation
----------------------------+
|
wake from allocation wait |
restart retry routine |
|
PUPAC9: <---------------------------+
return